package com.project.user.mapper;

import com.project.user.domain.UserOrder;

import java.util.List;
import java.util.Map;

/**
 * 订单列 数据层
 *
 * @author administrator
 */
public interface UserOrderMapper {
    /**
     * 查询订单列信息
     *
     * @param orderId 订单列ID
     * @return 订单列信息
     */
    public UserOrder selectUserOrderById(Long orderId);

    /**
     * 用户查询订单列列表
     *
     * @param userOrder 订单列信息
     * @return 订单列集合
     */
    public List<UserOrder> selectUserOrderList(UserOrder userOrder);

    /**
     * 后台管理员查询订单
     *
     * @param userOrder
     * @return
     */
    public List<UserOrder> selectSystemOrderList(UserOrder userOrder);

    /**
     * 新增订单列
     *
     * @param userOrder 订单列信息
     * @return 结果
     */
    public int insertUserOrder(UserOrder userOrder);

    /**
     * 修改订单列
     *
     * @param userOrder 订单列信息
     * @return 结果
     */
    public int updateUserOrder(UserOrder userOrder);

    /**
     * 删除订单列
     *
     * @param orderId 订单列ID
     * @return 结果
     */
    public int deleteUserOrderById(Long orderId);

    /**
     * 批量删除订单列
     *
     * @param orderIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteUserOrderByIds(String[] orderIds);

    /**
     * 更新订单状态
     *
     * @param userOrder
     * @return
     */
    public int updateUserOrderStatus(UserOrder userOrder);

    /**
     * 统计各个餐饮种类销量
     *
     * @param userOrder
     * @return
     */
    public List<Map<String, Object>> countGoodsNumByType(UserOrder userOrder);

    /**
     * 统计各个阶段销量
     *
     * @param userOrder
     * @return
     */
    public List<Map<String, Object>> countMoneyByQuetar(UserOrder userOrder);

    /**
     * 统计下单次数
     *
     * @return
     */
    public List<Map<String, Object>> countByGoodsId();
}